package com.yuandian.ops.workbench.service;

import com.yuandian.bpm.common.core.util.R;
import com.yuandian.ops.workbench.po.NewestAlarmParams;
import com.yuandian.ops.workbench.po.RealTimeAlarmParams;
import com.yuandian.utils.PageDataInfo;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * <p>
 *  实时告警service
 * <p>
 *
 * @author linshihe
 * @date 2021/10/25
 * @since 1.0.0
 */

public interface IRealTimeAlarmService {

    /**
     * 获取最新告警概况列表(BPM 4.0)
     * @param params 请求参数
     * @return
     */
    PageDataInfo getNewestAlarmList(NewestAlarmParams params);

    /**
     * 导出告警概况列表(BPM 4.0)
     * @param params 请求参数
     * @return
     */
    void getNewestAlarmListDownLoad(NewestAlarmParams params, HttpServletResponse response) throws IOException;

    /**
     * 获取告警事件档案总览列表(BPM 4.0)
     * @param params 请求参数
     */
    PageDataInfo getAlarmEventFileList(NewestAlarmParams params);

    /**
     * 获取告警事件档案详情列表(BPM 4.0)
     * @param params 请求参数
     */
    PageDataInfo getAlarmEventFileDetailList(NewestAlarmParams params);

    /**
     * 获取告警事件档案总览列表Excel(BPM 4.0)
     * @param params 请求参数
     */
    void getAlarmEventFileListDownLoad(NewestAlarmParams params, HttpServletResponse response) throws IOException;

    /**
     * 获取告警事件档案详情列表Excel(BPM 4.0)
     * @param params 请求参数
     */
    void getAlarmEventFileDetailListDownLoad(NewestAlarmParams params, HttpServletResponse response) throws IOException;

    /**
     * (BPM 4.0)
     * 二级-首页右下角最新健康度告警列表-更多
     * @param params 请求参数
     * @return
     */
    PageDataInfo getHealthAlarmList(NewestAlarmParams params);

    /**
     * (BPM 4.0)
     * 二级-首页右下角最新健康度告警列表Excel-更多
     * @param params 请求参数
     */
    void getHealthAlarmListDownLoad(NewestAlarmParams params, HttpServletResponse response) throws IOException;


	/**
	 * 告警详情列表
	 * @param params 请求参数
	 * @return
	 */
	PageDataInfo getRealTimeAlarmDetailList(RealTimeAlarmParams params);


	/**
	 * 导出告警详情列表
	 * @param params 请求参数
	 * @return
	 */
	void getRealTimeAlarmDetailListExport(RealTimeAlarmParams params, HttpServletResponse response) throws IOException;


	/**
	 * 获取业务健康度状况-业务各类告警次数概况
	 * @param params 请求参数
	 * @return
	 */
	R<Object> getBusinessAlarmCountList(RealTimeAlarmParams params);
}
